package com.gitee.feizns.quickstart.mybatis.plus.query;


import com.gitee.feizns.quickstart.domain.page.PageAo;
import com.gitee.feizns.quickstart.domain.page.PageRecordsVo;

/**
 * @author feizns
 * @since 2025/3/5
 */
public class Page<T> extends com.baomidou.mybatisplus.extension.plugins.pagination.Page<T> {

    /**
     * 分页参数
     * @param current 当前
     * @param size 大小
     */
    public Page(Number current, Number size) {
        super(current.longValue(), size.longValue());
    }

    /**
     * 之
     * @param current 当前
     * @param size 大小
     * @return {@link Page}<{@link T}>
     */
    public static <T> Page<T> of(Number current, Number size) {
        return new Page<>(current, size);
    }

    /**
     * 之
     * @param page 分页参数
     * @return {@link Page}<{@link T}>
     */
    public static <T> Page<T> of(PageAo page) {
        return new Page<>(page.getCurrent(), page.getSize());
    }

    /**
     * 自分页参数记录响应对象
     * @return {@link PageRecordsVo}<{@link T}>
     */
    public PageRecordsVo<T> toPageRecordsVo() {
        return new MybatisPlusPageRecordsVoImpl<>(this);
    }

}
